#ifndef WATERMARKGENERATORFACTORY_H
#define WATERMARKGENERATORFACTORY_H

#include <QString>
#include <QMap>

#include "singleton.h"
#include "watermarkgenerator.h"
#include "textwatermarkgenerator.h"
#include "imagewatermarkgenerator.h"
#include "misc.h"

namespace Wishmaster
{
	class WISHMASTER_EXPORT WatermarkGeneratorFactory : public Singleton<WatermarkGeneratorFactory>
	{
	public:
		WatermarkGeneratorFactory();
		virtual ~WatermarkGeneratorFactory();

		TextWatermarkGeneratorPtr createTextWatermark(const QString& id);
		bool probeTextWatermark(const QString& input, QByteArray& result);

	private:
		void addTextWatermarkGenerator(const TextWatermarkGeneratorPtr& generator);
		QMap<QString, TextWatermarkGeneratorPtr> m_textWatermarks;
	};
}

#endif // WATERMARKGENERATORFACTORY_H
